* gtk_action_group_add_..._actions_full() functions.
*/
guint i;
- GtkTranslateFunc translate_func;
- gpointer translate_data;
SharedData *shared_data;
g_return_if_fail (GTK_IS_ACTION_GROUP (action_group));
- translate_func = action_group->private_data->translate_func;
- translate_data = action_group->private_data->translate_data;
-
shared_data = g_new0 (SharedData, 1);
shared_data->ref_count = 1;
shared_data->data = user_data;
const gchar *label;
const gchar *tooltip;
- if (translate_func)
- {
- label = translate_func (entries[i].label, translate_data);
- tooltip = translate_func (entries[i].tooltip, translate_data);
- }
- else
- {
- label = entries[i].label;
- tooltip = entries[i].tooltip;
- }
+ label = gtk_action_group_translate_string (action_group, entries[i].label);
+ tooltip = gtk_action_group_translate_string (action_group, entries[i].tooltip);
action = gtk_action_new (entries[i].name,
label,
* gtk_action_group_add_..._actions_full() functions.
*/
guint i;
- GtkTranslateFunc translate_func;
- gpointer translate_data;
SharedData *shared_data;
g_return_if_fail (GTK_IS_ACTION_GROUP (action_group));
- translate_func = action_group->private_data->translate_func;
- translate_data = action_group->private_data->translate_data;
-
shared_data = g_new0 (SharedData, 1);
shared_data->ref_count = 1;
shared_data->data = user_data;
const gchar *label;
const gchar *tooltip;
- if (translate_func)
- {
- label = translate_func (entries[i].label, translate_data);
- tooltip = translate_func (entries[i].tooltip, translate_data);
- }
- else
- {
- label = entries[i].label;
- tooltip = entries[i].tooltip;
- }
+ label = gtk_action_group_translate_string (action_group, entries[i].label);
+ tooltip = gtk_action_group_translate_string (action_group, entries[i].tooltip);
action = gtk_toggle_action_new (entries[i].name,
label,
* gtk_action_group_add_..._actions_full() functions.
*/
guint i;
- GtkTranslateFunc translate_func;
- gpointer translate_data;
GSList *group = NULL;
GtkRadioAction *first_action = NULL;
g_return_if_fail (GTK_IS_ACTION_GROUP (action_group));
- translate_func = action_group->private_data->translate_func;
- translate_data = action_group->private_data->translate_data;
-
for (i = 0; i < n_entries; i++)
{
GtkRadioAction *action;
const gchar *label;
const gchar *tooltip;
- if (translate_func)
- {
- label = translate_func (entries[i].label, translate_data);
- tooltip = translate_func (entries[i].tooltip, translate_data);
- }
- else
- {
- label = entries[i].label;
- tooltip = entries[i].tooltip;
- }
+ label = gtk_action_group_translate_string (action_group, entries[i].label);
+ tooltip = gtk_action_group_translate_string (action_group, entries[i].tooltip);
action = gtk_radio_action_new (entries[i].name,
label,
g_free);
}
+
+/**
+ * gtk_action_group_translate_string:
+ * @action_group: a #GtkActionGroup
+ * @string: a string
+ *
+ * Translates a string using the specified translate_func(). This
+ * is mainly intended for language bindings.
+ *
+ * Returns: the translation of @string
+ *
+ * Since: 2.6
+ **/
+G_CONST_RETURN gchar *
+gtk_action_group_translate_string (GtkActionGroup *action_group,
+ const gchar *string)
+{
+ GtkTranslateFunc translate_func;
+ gpointer translate_data;
+
+ g_return_val_if_fail (GTK_IS_ACTION_GROUP (action_group), string);
+
+ translate_func = action_group->private_data->translate_func;
+ translate_data = action_group->private_data->translate_data;
+
+ if (translate_func)
+ return translate_func (string, translate_data);
+ else
+ return string;
+}
+
/* Protected for use by GtkAction */
void
_gtk_action_group_emit_connect_proxy (GtkActionGroup *action_group,